console.log(`
【fs 模块概述】
    Node.js 的文件系统模块 (fs) 允许我们与文件系统进行交互，
    提供了大量用于文件和目录操作的方法。这些方法通常有同步和异步两种版本。
`);

console.log(`
【文件夹操作：创建文件夹、读取文件夹、删除文件夹 Api】
    1. fs.mkdir()             异步创建文件夹
    2. fs.mkdirSync()         同步创建文件夹

    3. fs.readdir()           异步读取文件夹
    4. fs.readdirSync()       同步读取文件夹

    5. fs.rmdir()             异步删除文件夹
    6. fs.rmdirSync()         同步删除文件夹

    7. fs.exists()            异步验证路径是否存在
    8. fs.existsSync()       同步验证路径是否存在
`); 

console.log(
  `使用文件写入Api前，需要先导入fs模块：
   导入模块、require 是 Node.js 环境中的'全局'变量，用来导入模块
   const fs = require("fs");
  `
);
const fs = require("fs");

console.log(`
【异步创建文件夹】:fs.mkdir()
    语法：
        fs.mkdir(path, callback)
    参数：
        path：文件夹路径
        callback：回调函数
    返回值：
        无
    异常：
        如果 path 已存在，会抛出异常
`);
fs.mkdir("./异步创建文件夹", (err) => {
  if (err) {
    console.log("no");
    return;
  }
  console.log("yes");
});

console.log(`
【同步创建文件夹】:fs.mkdirSync()
    语法：
        fs.mkdirSync(path)
    参数：
        path：文件夹路径
    返回值：
        无
    异常：
        如果 path 已存在，会抛出异常
`);
try {
  fs.mkdirSync("./同步创建文件夹");
} catch (err) {
  console.log(err);
}




console.log(`
【异步读取文件夹】:fs.readdir()
    语法：
        fs.readdir(path, callback)
    参数：
        path：文件夹路径
        callback：回调函数
    返回值：
        无
    异常：
        如果 path 不存在，会抛出异常
`);
fs.readdir("./异步创建文件夹", (err, data) => {
  if (err) {
    console.log("no");
    return;
  }
  console.log("yes", data);
});




console.log(`
【同步读取文件夹】:fs.readdirSync()
    语法：
        fs.readdirSync(path)
    参数：
        path：文件夹路径
    返回值：
        无
    异常：
        如果 path 不存在，会抛出异常
`);
try {
  fs.readdirSync("./异步创建文件夹");
} catch (err) {
  console.log(err);
}




console.log(`
【异步删除文件夹】:fs.rmdir()
    语法：
        fs.rmdir(path, callback)
    参数：
        path：文件夹路径
        callback：回调函数
    返回值：
        无
    异常：
        如果 path 不存在，会抛出异常
`);
fs.rmdir("./异步创建文件夹", (err) => {
  if (err) {
    console.log("no");
    return;
  }
  console.log("yes");
});




console.log(`
【同步删除文件夹】:fs.rmdirSync()
    语法：
        fs.rmdirSync(path)
    参数：
        path：文件夹路径
    返回值：
        无
    异常：
        如果 path 不存在，会抛出异常
`);
try {
  fs.rmdirSync("./同步创建文件夹");
} catch (err) {
  console.log(err);
}





/**
 * 递归删除,
 *      递归删除和递归创建一样，通过添加配置项 recursive 为 true 即可
 */
fs.rm("./1", { recursive: true }, (err) => {
    if (err) {
      console.log("no", err);
      return;
    }
    console.log("yes");
  });







